package com.google.code.stalkernet.advertisements;

import com.google.code.stalkernet.advertisement.Advertisement;
import com.google.code.stalkernet.advertisements.event.AdvertisementsListener;

/**
 * A set of advertisements.
 *
 * @author Mikhail Vladimirov
 */
public interface Advertisements
{
    /**
     * Add listener to be notified about advertisements-related events.
     *
     * @param advertisementsListener listener to be added
     */
    public void addAdvertisementsListener (
        AdvertisementsListener advertisementsListener);

    /**
     * Remove listener notified about advertisements-related events.
     *
     * @param advertisementsListener listener to be removed
     */
    public void removeAdvertisementsListener (
        AdvertisementsListener advertisementsListener);

    /**
     * Add advertisement.
     *
     * @param advertisement {@link Advertisements} to be added
     */
    public void addAdvertisement (Advertisement advertisement);

    /**
     * Remove advertisement.
     *
     * @param advertisement {@link Advertisements} to be removed
     */
    public void removeAdvertisement (Advertisement advertisement);

    /**
     * Get all advertisements.
     *
     * @return an array of {@link Advertisements} objects
     */
    public Advertisement [] getAllAdvertisements ();
}
